package com.dhc.service.utils.result;

import lombok.Data;

import java.util.HashMap;
import java.util.Map;

@SuppressWarnings({"all"})
@Data
public class Result {

	private Boolean success;

	private Integer code;

	private String message;

	private Map<String, Object> data = new HashMap<>();

	private Result() {
	}

	public static Result ok() {
		Result r = new Result();
		r.setSuccess(true);
		r.setCode(ResultCode.SUCCESS);
		r.setMessage("SUCCESS");
		return r;
	}

	public static Result error() {
		Result r = new Result();
		r.setSuccess(false);
		r.setCode(ResultCode.ERROR);
		r.setMessage("ERROR");
		return r;
	}

	public Result success(Boolean success) {
		this.setSuccess(success);
		return this;
	}

	public Result code(Integer code) {
		this.setCode(code);
		return this;
	}

	public Result message(String message) {
		this.setMessage(message);
		return this;
	}

	public Result data(Map<String, Object> data) {
		this.setData(data);
		return this;
	}

	public Result data(String key, Object value) {
		this.data.put(key, value);
		return this;
	}

}
